package MAIN;
//笔试强训第26天
//选择题
/*方法的重写：返回值类型必须相同或者相容，相容：
* class A { A text(){ return this; }}   class B {B text() { return this;}}
* 此时类A中和类B中的两个方法也可以构成重载，B类中的方法返回值类型是B，B本身就是A的子类，所以
* 向上转型的返回值也是可以的*/
/*JVM垃圾回收是JVM自己决定的，程序猿是没有权限干预的*/
/*形参可以被视为Local variable（局部变量），就是出了这个方法就被回收了*/
/*Java中所有其他类型和字符串进行 + ，都会被转为字符串而后进行字符串的拼接*/
/*ConcurrentHashMap使用的是lock关键字保证线程的安全*/
/*Collection接口是线性表的顶级接口，HashMap实现的是Map接口*/
/*Arrays.asList方法返回的是一个List接口对象*/
/*SimpleDateFormat对象是线程不安全的*/
/*Switch语句如果没有在case中写break循环，此时的各种case情况都会被执行到，default语句
* 也会被执行。Switch语句中如果没有break，会在碰到第一个满足的分支后一直向下执行*/

//编程题
import java.math.BigDecimal;
import java.util.BitSet;
import java.util.Scanner;

public class Main26 {
    //跳台阶扩展问题：变态跳台阶
    //台阶看成一个数组，每个数组都有两种选择，一个是跳，一个是不跳，
    //所以可以写成2进制数据，最后求的是从第一位到第n-1位有多少种二进制的数据
    //因为最后一个台阶是必须要跳的，所以最后一位就是1，算前n-1位有多少种情况即可
    //x * 2^(n-1) = 1 << (--n)
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int target = sc.nextInt();
            int n = 1 << (--target);
            System.out.println(n);
        }
    }


    //快到碗里来
    /*BigDecimal数据类型：构造一个BigDecimal对象，要传进去一个String类型的参数，此时如果是
    * 传一个Double类型的参数，会造成精度的丢失*/
    public static void main3(String[] args) {
        //对于BigDecimal做乘法：不能像基本数据类型一样做乘法
        BigDecimal d = new BigDecimal("3.14").multiply(new BigDecimal("1.5"));
        //对于BigDecimal判断大小
        BigDecimal n1 = new BigDecimal("1.2");
        BigDecimal n2 = new BigDecimal("1.3");
        BigDecimal n3 = new BigDecimal("1.55");
        //要用compareTo进行比较，也和基本数据类型是不一样的
        System.out.println(n1.compareTo(n2));
    }
    public static void main2(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            BigDecimal n = scan.nextBigDecimal();//猫的身长
            BigDecimal r = scan.nextBigDecimal();//碗的半径
            BigDecimal len = new BigDecimal("6.28").multiply(r);
            //如果这个猫的身长 > 碗的周长，此时进不去，否则可以进去
            System.out.println(n.compareTo(len) == 1 ? "No" : "Yes");
        }
    }
}
